The present invention relates generally to computer systems and, more particularly, to method and apparatus to deploy applications in cloud environments.
Cloud computing has become widely used. There are several solutions to utilize multiple cloud computing environments. For example, a cloud environment is managed and used based on following role allotment. The infrastructure administrator manages IT resources and stores these into resource pools. Application administrator obtains IT resources from the resource pool using a self-service portal to execute his/her applications. Several problems exist. In a cloud computing environment, users cannot select servers on which applications (VMs) are deployed because they do not identify the infrastructure within the cloud. Performance and/or capacity efficiency will vary greatly depending on which servers the applications (VMs) will be deployed. In the case where servers and/or storages have deduplication functionality, it is better to deploy applications (VMs) on servers on which other applications (VMs) created by using the same application catalog are already running from a capacity efficiency perspective. On the other hand, deploying many applications (VMs) on the same servers will cause performance bottleneck.
U.S. Patent Application Publication No. US2013/0132954 relates to a mechanism for image deployment in a cloud environment comprising at least two hosts coupled to at least one disk, and at least one virtual machine created in at least one host of the at least two hosts by deploying an additional image to the at least one disk. The method is characterized in that the at least one host for deploying an additional image is selected according to a deployment factor representing a communality relationship between one or more existing base images in the cloud environment and the additional image. This reference does not consider configurations of servers and storages and their capabilities of deduplication functionalities in deploying applications (VMs). Nor does it disclose changing the configurations of servers and storages or changing the criteria for deciding where to deploy applications (VMs) according to the type of the applications.